fundamental investing split function problem

by: SGaud1, 8 years ago


When running the following code the split function is causing an error

def yahooKeyStats(stock):
    try:
        sourceCode = urllib2.urlopen('http://finance.yahoo.com/q/ks?s='+stock).read()
        pbr = sourceCode.split('Price/Book (mrq):</td><td class="yfnc_tabledata1">')[1].split('</td>')[0]
        print 'price to book ratio:',stock,pbr

    except Exception,e:
        print 'failed in the main loop',str(e)

I am getting this error - failed in the main loop a bytes-like object is required, not 'str'

I am using python 3.5

Any help will be much appreciated

Cheers



You must be logged in to post. Please login or register an account.



If you were on python 3+, those print statements would cause a syntax error, also urllib2 isn't a thing. You sure you are really using Python 3 here?

It's possible you copied that code from the tutorial and pasted here instead, but, if that's the case, you need to decode the data. Python 2 treated bytes and strings the same. Python 3 separates those, so you need to convert bytes to strings. Apply a .decode() to the end of the source code you pull.

-Harrison 8 years ago

You must be logged in to post. Please login or register an account.

Hi
Yes i used urlib and made the syntax changes tor print and exception


import time
import urllib
from urllib.request import urlopen

def yahooKeyStats(stock):
    try:
        sourceCode = urllib.request.urlopen('http://finance.yahoo.com/q/ks?s='+stock).read()
        pbr = sourceCode.split('Price/Book (mrq):</td><td class="yfnc_tabledata1">')[1].split('</td>')[0]
        print ('price to book ratio:',stock,pbr)

    except Exception as e:
        print ('failed in the main loop',str(e))

yahooKeyStats('a')




I added a .decode() to the end of the sourceCode and still get an error 'list index out of range'

I might not be using the .decode() properly any guidance will be appreciated

Cheers

-SGaud1 8 years ago

You must be logged in to post. Please login or register an account.


Yeah I'm having the same problem with regards to the "list index out of range".

-petermcquaid 8 years ago

You must be logged in to post. Please login or register an account.